      1  /**

      2     A class to monitor the growth of an investment that

      3     accumulates interest at a fixed annual rate

      4  */

      5  public class Investment

      6  {

      7     private double balance;

      8     private double rate;

      9     private int year;

     10

     11     /**

     12        Constructs an Investment object from a starting balance and

     13        interest rate.

     14        @param aBalance the starting balance

     15        @param aRate the interest rate in percent

     16     */

     17     public Investment(double aBalance, double aRate)

     18     {

     19        balance = aBalance;

     20        rate = aRate;

     21        year = 0;

     22     }

     23

     24     /**

     25        Keeps accumulating interest until a target balance has

     26        been reached.

     27        @param targetBalance the desired balance

     28     */

     29     public void waitForBalance(double targetBalance)

     30     {

     31        while (balance < targetBalance)

     32        {

     33           year++;

     34           double interest = balance * rate / 100;

     35           balance = balance + interest;

     36        }

     37     }

     38

     39     /**

     40        Keeps accumulating interest for a given number of years.

     41        @param numberOfYears the number of years to wait

     42     */

     43     public void waitYears(int numberOfYears)

     44     {

     45        for (int i = 1; i <= numberOfYears; i++)

     46        {

     47           double interest = balance * rate / 100;

     48           balance = balance + interest;

     49        }

     50        year = year + n;

     51     }

     52

     53     /**

     54        Gets the current investment balance.

     55        @return the current balance

     56     */

     57     public double getBalance()

     58     {

     59        return balance;

     60     }

     61

     62     /**

     63        Gets the number of years this investment has accumulated

     64        interest.

     65        @return the number of years since the start of the investment

     66     */

     67     public int getYears()

     68     {

     69        return year;

     70     }

     71  }